package week4.hotel;

/**
 * Hotelkamer, met nummer en (eventuele) huurder.
 * Practicumopgave Programmeren 1
 * @author Rick Clement en Adriaan Dekker
 * @version $Revision: 1.2 $
 */
public class Kamer {
    // ------------------ Instantievariabelen ----------------

    private int nummer;
    private Gast gast;
	private Kluis kluis;

    // ------------------ Constructor ------------------------

    /**
     * Construeert <code>Kamer</code> met gegeven nummer, zonder huurder.
     * @param nr nummer van de nieuwe <code>Kamer</code>
     */
    public Kamer(int nr) {
		nummer = nr;
		kluis = new Kluis(Wachtwoord.BEGINWOORD);
    }

    // ------------------ Aanvragen --------------------------

    /**
     * Levert een tekstuele representatie van deze <code>Kamer</code> op.
     */
    public String toString() {
		String retval = "Kamer ";
			retval += nummer;
		if (this.gast != null)
			retval += ", bezet door " + gast.getNaam();
		if (this.kluis.isActief())
			retval += " die zijn kluis gebruikt";
		return retval;
    }

    /**
     * Levert de <code>Kluis</code> van deze <code>Kamer</code> op.
     */
    public Kluis getKluis() {
		return kluis;
    }

   /**
     * Levert nummer van deze <code>Kamer</code> op.
     */
    public int getNummer() {
		return nummer;
    }

    // ------------------ Commando's --------------------------


    /**
     * Levert huidige huurder van deze <code>Kamer</code> op.
     * @return huurder van deze <code>Kamer</code>;
     *         <code>null</code> indien deze <code>Kamer</code> 
     *         geen huurder heeft*/
    public Gast getGast() {
		return gast;
    }

    /**
     * Wijst een <code>Gast</code> aan deze <code>Kamer</code> toe.
     * @param g toekomstige huurder van deze <code>Kamer</code>;
     *        indien <code>null</code> dan is naderhand 
     *        deze <code>Kamer</code> vrij
     */
    public void setGast(Gast g) {
		gast = g;
    }

    public void operation1() {
    }
}
